{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "4bd76eb9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d78a6c92",
   "metadata": {},
   "source": [
    "# 1. apply()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "dc614ebf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.976806</td>\n",
       "      <td>-0.176659</td>\n",
       "      <td>-1.987187</td>\n",
       "      <td>0.334759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.595416</td>\n",
       "      <td>-3.060585</td>\n",
       "      <td>1.088546</td>\n",
       "      <td>-0.258329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.581111</td>\n",
       "      <td>-0.878873</td>\n",
       "      <td>-1.546874</td>\n",
       "      <td>-1.177826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000862</td>\n",
       "      <td>0.182778</td>\n",
       "      <td>-0.311939</td>\n",
       "      <td>-0.969469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.040958</td>\n",
       "      <td>-1.583389</td>\n",
       "      <td>-1.642360</td>\n",
       "      <td>-0.577521</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3\n",
       "0  0.976806 -0.176659 -1.987187  0.334759\n",
       "1 -1.595416 -3.060585  1.088546 -0.258329\n",
       "2 -0.581111 -0.878873 -1.546874 -1.177826\n",
       "3 -0.000862  0.182778 -0.311939 -0.969469\n",
       "4  0.040958 -1.583389 -1.642360 -0.577521"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#创建数据\n",
    "df = pd.DataFrame(np.random.randn(5,4))\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae06b06f",
   "metadata": {},
   "source": [
    "**abs方法**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "f1d93af0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.976806</td>\n",
       "      <td>0.176659</td>\n",
       "      <td>1.987187</td>\n",
       "      <td>0.334759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.595416</td>\n",
       "      <td>3.060585</td>\n",
       "      <td>1.088546</td>\n",
       "      <td>0.258329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.581111</td>\n",
       "      <td>0.878873</td>\n",
       "      <td>1.546874</td>\n",
       "      <td>1.177826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.000862</td>\n",
       "      <td>0.182778</td>\n",
       "      <td>0.311939</td>\n",
       "      <td>0.969469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.040958</td>\n",
       "      <td>1.583389</td>\n",
       "      <td>1.642360</td>\n",
       "      <td>0.577521</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3\n",
       "0  0.976806  0.176659  1.987187  0.334759\n",
       "1  1.595416  3.060585  1.088546  0.258329\n",
       "2  0.581111  0.878873  1.546874  1.177826\n",
       "3  0.000862  0.182778  0.311939  0.969469\n",
       "4  0.040958  1.583389  1.642360  0.577521"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.abs()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05b59a7e",
   "metadata": {},
   "source": [
    "**取出列最大值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2eee5469",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.976806\n",
       "1    0.182778\n",
       "2    1.088546\n",
       "3    0.334759\n",
       "dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a722d9cc",
   "metadata": {},
   "source": [
    "**使用 apply 方法 取出 列最大值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c5a661d7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.976806\n",
       "1    0.182778\n",
       "2    1.088546\n",
       "3    0.334759\n",
       "dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.apply(lambda x:x.max())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27eb39af",
   "metadata": {},
   "source": [
    "**使用 apply 方法 去除  行最大值**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "6dfa608a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    0.976806\n",
       "1    1.088546\n",
       "2   -0.581111\n",
       "3    0.182778\n",
       "4    0.040958\n",
       "dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.apply(lambda x:x.max(),axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d09ece08",
   "metadata": {},
   "source": [
    "# 2. applymap()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf5adb85",
   "metadata": {},
   "source": [
    "**通过applyamp 将函数应用到每一个数据**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b0178c91",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.976806</td>\n",
       "      <td>-0.176659</td>\n",
       "      <td>-1.987187</td>\n",
       "      <td>0.334759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.595416</td>\n",
       "      <td>-3.060585</td>\n",
       "      <td>1.088546</td>\n",
       "      <td>-0.258329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.581111</td>\n",
       "      <td>-0.878873</td>\n",
       "      <td>-1.546874</td>\n",
       "      <td>-1.177826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000862</td>\n",
       "      <td>0.182778</td>\n",
       "      <td>-0.311939</td>\n",
       "      <td>-0.969469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.040958</td>\n",
       "      <td>-1.583389</td>\n",
       "      <td>-1.642360</td>\n",
       "      <td>-0.577521</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3\n",
       "0  0.976806 -0.176659 -1.987187  0.334759\n",
       "1 -1.595416 -3.060585  1.088546 -0.258329\n",
       "2 -0.581111 -0.878873 -1.546874 -1.177826\n",
       "3 -0.000862  0.182778 -0.311939 -0.969469\n",
       "4  0.040958 -1.583389 -1.642360 -0.577521"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "1efb0782",
   "metadata": {},
   "outputs": [],
   "source": [
    "fuc = lambda x:\"%.2f\"%x  # 保留小数点 后两位"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "eb0ce530",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.98</td>\n",
       "      <td>-0.18</td>\n",
       "      <td>-1.99</td>\n",
       "      <td>0.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.60</td>\n",
       "      <td>-3.06</td>\n",
       "      <td>1.09</td>\n",
       "      <td>-0.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.58</td>\n",
       "      <td>-0.88</td>\n",
       "      <td>-1.55</td>\n",
       "      <td>-1.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.00</td>\n",
       "      <td>0.18</td>\n",
       "      <td>-0.31</td>\n",
       "      <td>-0.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.04</td>\n",
       "      <td>-1.58</td>\n",
       "      <td>-1.64</td>\n",
       "      <td>-0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       0      1      2      3\n",
       "0   0.98  -0.18  -1.99   0.33\n",
       "1  -1.60  -3.06   1.09  -0.26\n",
       "2  -0.58  -0.88  -1.55  -1.18\n",
       "3  -0.00   0.18  -0.31  -0.97\n",
       "4   0.04  -1.58  -1.64  -0.58"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.applymap(fuc)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ac13d8f",
   "metadata": {},
   "source": [
    "# 排序"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ac13562",
   "metadata": {},
   "source": [
    "## 索引排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "1276349a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    0\n",
       "d    1\n",
       "c    2\n",
       "a    3\n",
       "dtype: int32"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1 = pd.Series(np.arange(4),index=list(\"bdca\"))\n",
    "s1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47f8381a",
   "metadata": {},
   "source": [
    "**升序**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "cfc59939",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    3\n",
       "b    0\n",
       "c    2\n",
       "d    1\n",
       "dtype: int32"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1.sort_index()  # 默认升序"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de2f94e8",
   "metadata": {},
   "source": [
    "**降序  ascending = False**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "097085f4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "d    1\n",
       "c    2\n",
       "b    0\n",
       "a    3\n",
       "dtype: int32"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1.sort_index(ascending=False)  # 降序排列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "77c4b409",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   B   C   A\n",
       "b  0   1   2\n",
       "d  3   4   5\n",
       "c  6   7   8\n",
       "a  9  10  11"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd1 = pd.DataFrame(np.arange(12).reshape(4,3),index=list(\"bdca\"),columns=list(\"BCA\"))\n",
    "pd1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30f450fa",
   "metadata": {},
   "source": [
    "**按照行 排序**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4fe8ecc7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   B   C   A\n",
       "a  9  10  11\n",
       "b  0   1   2\n",
       "c  6   7   8\n",
       "d  3   4   5"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd1.sort_index()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34be0755",
   "metadata": {},
   "source": [
    "**按照 列排序**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "eab158af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>11</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    A  B   C\n",
       "b   2  0   1\n",
       "d   5  3   4\n",
       "c   8  6   7\n",
       "a  11  9  10"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd1.sort_index(axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4a312e6",
   "metadata": {},
   "source": [
    "## 按 值 排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "48a347f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    0\n",
       "d    1\n",
       "c    2\n",
       "a    3\n",
       "dtype: int32"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ad80f810",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b    0\n",
       "d    1\n",
       "c    2\n",
       "a    3\n",
       "dtype: int32"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1.sort_values()  # 有缺失值 Nan时 默认放到最后"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "9833fc96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   B   C   A\n",
       "b  0   1   2\n",
       "d  3   4   5\n",
       "c  6   7   8\n",
       "a  9  10  11"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "840c3f23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>A</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   B   C   A\n",
       "b  0   1   2\n",
       "d  3   4   5\n",
       "c  6   7   8\n",
       "a  9  10  11"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd1.sort_values(by=\"A\")  # 按 列 排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "66cd6ff5",
   "metadata": {},
   "outputs": [],
   "source": [
    "pd2 = pd.DataFrame({\"a\":[3,7,9,0],\"b\":[1,-1,4,8],\"c\":[0,6,-3,2]})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "29adfd1e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7</td>\n",
       "      <td>-1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>-3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a  b  c\n",
       "0  3  1  0\n",
       "1  7 -1  6\n",
       "2  9  4 -3\n",
       "3  0  8  2"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "6e2d5bbc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7</td>\n",
       "      <td>-1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>-3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a  b  c\n",
       "1  7 -1  6\n",
       "0  3  1  0\n",
       "2  9  4 -3\n",
       "3  0  8  2"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd2.sort_values(by=\"b\")  # 按 列 排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "efbdbd6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>-3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7</td>\n",
       "      <td>-1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a  b  c\n",
       "3  0  8  2\n",
       "2  9  4 -3\n",
       "0  3  1  0\n",
       "1  7 -1  6"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd2.sort_values(by=[\"b\"],ascending=False)  # 按 列 排序"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4389ca7",
   "metadata": {},
   "source": [
    "# 唯一值 和成员属性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "c4fe48ad",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    2\n",
       "1    6\n",
       "2    8\n",
       "3    9\n",
       "4    8\n",
       "5    3\n",
       "6    6\n",
       "dtype: int64"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1 = pd.Series([2,6,8,9,8,3,6])\n",
    "s1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "fd31562c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 6, 8, 9, 3], dtype=int64)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1.unique()  # 数据唯一值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "82380751",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6    2\n",
       "8    2\n",
       "2    1\n",
       "9    1\n",
       "3    1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s1.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "560b34ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    False\n",
       "1    False\n",
       "2     True\n",
       "3    False\n",
       "4     True\n",
       "5    False\n",
       "6    False\n",
       "dtype: bool"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断值是否存在  \n",
    "s1.isin([8]) # 判断 8是否存在"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "b34820ea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     True\n",
       "1    False\n",
       "2     True\n",
       "3    False\n",
       "4     True\n",
       "5    False\n",
       "6    False\n",
       "dtype: bool"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 判断值是否存在  \n",
    "s1.isin([8,2]) # 判断 8是否存在"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "07d3c9a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7</td>\n",
       "      <td>-1</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>-3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   a  b  c\n",
       "0  3  1  0\n",
       "1  7 -1  6\n",
       "2  9  4 -3\n",
       "3  0  8  2"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "0912cc11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       a      b      c\n",
       "0  False  False  False\n",
       "1  False  False  False\n",
       "2  False  False  False\n",
       "3  False  False   True"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd2.isin([2])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c632ee0",
   "metadata": {},
   "source": [
    "# 处理缺失数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "0910ecb5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.189819</td>\n",
       "      <td>-0.878744</td>\n",
       "      <td>1.983294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2\n",
       "0 -1.189819 -0.878744  1.983294\n",
       "1  1.000000  2.000000       NaN\n",
       "2       NaN  4.000000       NaN\n",
       "3  1.000000  2.000000  3.000000"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df3 = pd.DataFrame([np.random.randn(3),[1,2,np.nan],[np.nan,4,np.nan],[1,2,3]])\n",
    "df3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "120a3f84",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       0      1      2\n",
       "0  False  False  False\n",
       "1  False  False   True\n",
       "2   True  False   True\n",
       "3  False  False  False"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1.判断是否存在 缺失值\n",
    "df3.isnull()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "d70e381c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       0      1      2\n",
       "0  False  False  False\n",
       "1  False  False   True\n",
       "2   True  False   True\n",
       "3  False  False  False"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df3.isna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "90846aaa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.189819</td>\n",
       "      <td>-0.878744</td>\n",
       "      <td>1.983294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2\n",
       "0 -1.189819 -0.878744  1.983294\n",
       "3  1.000000  2.000000  3.000000"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 2. 丢弃缺失 数据\n",
    "df3.dropna()  # 默认丢弃 行数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "100e4741",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.878744</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          1\n",
       "0 -0.878744\n",
       "1  2.000000\n",
       "2  4.000000\n",
       "3  2.000000"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df3.dropna(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "51f5598b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.189819</td>\n",
       "      <td>-0.878744</td>\n",
       "      <td>1.983294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>-1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2\n",
       "0 -1.189819 -0.878744  1.983294\n",
       "1  1.000000  2.000000 -1.000000\n",
       "2 -1.000000  4.000000 -1.000000\n",
       "3  1.000000  2.000000  3.000000"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 3.填充缺失值\n",
    "df3.fillna(-1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e4bbcc6b",
   "metadata": {},
   "source": [
    "# 层级索引 pass"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7322d252",
   "metadata": {},
   "source": [
    "# Pandas统计 计算和描述"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "6a727c49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>1.40</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>7.10</td>\n",
       "      <td>-4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>0.75</td>\n",
       "      <td>-1.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    one  two\n",
       "a  1.40  NaN\n",
       "b  7.10 -4.5\n",
       "c   NaN  NaN\n",
       "d  0.75 -1.3"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4 = pd.DataFrame([[1.4,np.nan],[7.1,-4.5],\n",
    "                  [np.nan,np.nan],[0.75,-1.3]],\n",
    "                   index=list(\"abcd\"),columns=[\"one\",\"two\"]\n",
    "                  )\n",
    "df4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "ff0b7c4d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "one    9.25\n",
       "two   -5.80\n",
       "dtype: float64"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "4fcb024b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a    1.40\n",
       "b    2.60\n",
       "c    0.00\n",
       "d   -0.55\n",
       "dtype: float64"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.sum(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "a391bae1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "a     NaN\n",
       "b    2.60\n",
       "c     NaN\n",
       "d   -0.55\n",
       "dtype: float64"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.sum(axis=1,skipna=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "9ab72885",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "one    b\n",
       "two    d\n",
       "dtype: object"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.idxmax() # 返回最大值的索引"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "4b0ac331",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>1.40</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>8.50</td>\n",
       "      <td>-4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>9.25</td>\n",
       "      <td>-5.8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    one  two\n",
       "a  1.40  NaN\n",
       "b  8.50 -4.5\n",
       "c   NaN  NaN\n",
       "d  9.25 -5.8"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.cumsum()  # 累计求和"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "2ff60f9f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.083333</td>\n",
       "      <td>-2.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.493685</td>\n",
       "      <td>2.262742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.750000</td>\n",
       "      <td>-4.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.075000</td>\n",
       "      <td>-3.700000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.400000</td>\n",
       "      <td>-2.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>4.250000</td>\n",
       "      <td>-2.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>7.100000</td>\n",
       "      <td>-1.300000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            one       two\n",
       "count  3.000000  2.000000\n",
       "mean   3.083333 -2.900000\n",
       "std    3.493685  2.262742\n",
       "min    0.750000 -4.500000\n",
       "25%    1.075000 -3.700000\n",
       "50%    1.400000 -2.900000\n",
       "75%    4.250000 -2.100000\n",
       "max    7.100000 -1.300000"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "f29ed34c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0     a\n",
       "1     a\n",
       "2     b\n",
       "3     c\n",
       "4     a\n",
       "5     a\n",
       "6     b\n",
       "7     c\n",
       "8     a\n",
       "9     a\n",
       "10    b\n",
       "11    c\n",
       "12    a\n",
       "13    a\n",
       "14    b\n",
       "15    c\n",
       "dtype: object"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss = pd.Series([\"a\",\"a\",\"b\",\"c\"]*4)\n",
    "ss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "2b989ff8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     16\n",
       "unique     3\n",
       "top        a\n",
       "freq       8\n",
       "dtype: object"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "de2d5372",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>1.40</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>7.10</td>\n",
       "      <td>-4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>0.75</td>\n",
       "      <td>-1.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    one  two\n",
       "a  1.40  NaN\n",
       "b  7.10 -4.5\n",
       "c   NaN  NaN\n",
       "d  0.75 -1.3"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "801be20a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>b</th>\n",
       "      <td>7.10</td>\n",
       "      <td>-4.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>a</th>\n",
       "      <td>1.40</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>c</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>d</th>\n",
       "      <td>0.75</td>\n",
       "      <td>-1.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    one  two\n",
       "b  7.10 -4.5\n",
       "a  1.40  NaN\n",
       "c   NaN  NaN\n",
       "d  0.75 -1.3"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df4.reindex(list(\"bacd\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e62415f1",
   "metadata": {},
   "source": [
    "# 离散化和面元划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "7fa51dc1",
   "metadata": {},
   "outputs": [],
   "source": [
    "ages = [20,22,25,27,21,23,37,61,45,41,32]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "2d16ca8c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 面元 Bin\n",
    "bins = [18,25,35,60,100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "bbe1dfdf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (35, 60], (60, 100], (35, 60], (35, 60], (25, 35]]\n",
       "Length: 11\n",
       "Categories (4, interval[int64, right]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats = pd.cut(ages,bins)\n",
    "cats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "9bdb0c45",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 1, 0, 0, 2, 3, 2, 2, 1], dtype=int8)"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats.codes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "e34c1dba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "IntervalIndex([(18, 25], (25, 35], (35, 60], (60, 100]], dtype='interval[int64, right]')"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats.categories"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "c8873495",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(18, 25]     5\n",
       "(35, 60]     3\n",
       "(25, 35]     2\n",
       "(60, 100]    1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.value_counts(cats)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "cb275bdb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[18, 25), [18, 25), [25, 35), [25, 35), [18, 25), ..., [35, 60), [60, 100), [35, 60), [35, 60), [25, 35)]\n",
       "Length: 11\n",
       "Categories (4, interval[int64, left]): [[18, 25) < [25, 35) < [35, 60) < [60, 100)]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 控制 区间 是 开 还是闭\n",
    "cats = pd.cut(ages,bins,right=False)\n",
    "cats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "224951f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['青年', '青年', '青年', '年轻人', '青年', ..., '中年', '老年', '中年', '中年', '年轻人']\n",
       "Length: 11\n",
       "Categories (4, object): ['青年' < '年轻人' < '中年' < '老年']"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "names = [\"青年\",\"年轻人\",\"中年\",\"老年\"]\n",
    "cats = pd.cut(ages,bins,labels= names)\n",
    "cats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "ae675de1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.29760568, 0.22972489, 0.06589841, 0.39125719, 0.74832237,\n",
       "       0.4870485 , 0.65968286, 0.66391215, 0.3246347 , 0.54057217,\n",
       "       0.84017275, 0.5667447 , 0.07769162, 0.67537004, 0.4201314 ,\n",
       "       0.18347568, 0.15933005, 0.4637399 , 0.48253681, 0.77316257])"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = np.random.rand(20)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "8fef3505",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0.26, 0.45], (0.065, 0.26], (0.065, 0.26], (0.26, 0.45], (0.65, 0.84], ..., (0.065, 0.26], (0.065, 0.26], (0.45, 0.65], (0.45, 0.65], (0.65, 0.84]]\n",
       "Length: 20\n",
       "Categories (4, interval[float64, right]): [(0.065, 0.26] < (0.26, 0.45] < (0.45, 0.65] < (0.65, 0.84]]"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.cut(data,4,precision=2)  # 小数位数 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "60a54964",
   "metadata": {},
   "outputs": [],
   "source": [
    "data2 = np.random.randn(1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "de3fc83b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(-0.746, -0.0784], (0.659, 3.267], (0.659, 3.267], (0.659, 3.267], (-0.0784, 0.659], ..., (0.659, 3.267], (-2.759, -0.746], (-0.746, -0.0784], (-0.0784, 0.659], (-0.746, -0.0784]]\n",
       "Length: 1000\n",
       "Categories (4, interval[float64, right]): [(-2.759, -0.746] < (-0.746, -0.0784] < (-0.0784, 0.659] < (0.659, 3.267]]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats2 = pd.qcut(data2,4)\n",
    "cats2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "ec3f4ff8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-2.759, -0.746]     250\n",
       "(-0.746, -0.0784]    250\n",
       "(-0.0784, 0.659]     250\n",
       "(0.659, 3.267]       250\n",
       "dtype: int64"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cats2.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "ec549f36",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.012830</td>\n",
       "      <td>-0.289851</td>\n",
       "      <td>-0.885834</td>\n",
       "      <td>0.072249</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.539013</td>\n",
       "      <td>-1.073993</td>\n",
       "      <td>0.519448</td>\n",
       "      <td>0.387743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.188796</td>\n",
       "      <td>-0.350532</td>\n",
       "      <td>0.289163</td>\n",
       "      <td>-1.364361</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-1.166781</td>\n",
       "      <td>-1.667370</td>\n",
       "      <td>-0.029461</td>\n",
       "      <td>0.364514</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.623350</td>\n",
       "      <td>0.470443</td>\n",
       "      <td>-0.146530</td>\n",
       "      <td>-0.338026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>995</th>\n",
       "      <td>1.634400</td>\n",
       "      <td>-0.273588</td>\n",
       "      <td>-0.558811</td>\n",
       "      <td>-0.416856</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>996</th>\n",
       "      <td>-0.430714</td>\n",
       "      <td>-0.335775</td>\n",
       "      <td>-1.957896</td>\n",
       "      <td>0.704537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>997</th>\n",
       "      <td>-0.020168</td>\n",
       "      <td>0.570776</td>\n",
       "      <td>0.183211</td>\n",
       "      <td>-0.422425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>998</th>\n",
       "      <td>-0.485222</td>\n",
       "      <td>0.483648</td>\n",
       "      <td>-0.444503</td>\n",
       "      <td>1.781844</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>999</th>\n",
       "      <td>-0.392667</td>\n",
       "      <td>-0.082485</td>\n",
       "      <td>-0.123449</td>\n",
       "      <td>-0.349467</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1000 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            0         1         2         3\n",
       "0    1.012830 -0.289851 -0.885834  0.072249\n",
       "1    0.539013 -1.073993  0.519448  0.387743\n",
       "2   -0.188796 -0.350532  0.289163 -1.364361\n",
       "3   -1.166781 -1.667370 -0.029461  0.364514\n",
       "4   -0.623350  0.470443 -0.146530 -0.338026\n",
       "..        ...       ...       ...       ...\n",
       "995  1.634400 -0.273588 -0.558811 -0.416856\n",
       "996 -0.430714 -0.335775 -1.957896  0.704537\n",
       "997 -0.020168  0.570776  0.183211 -0.422425\n",
       "998 -0.485222  0.483648 -0.444503  1.781844\n",
       "999 -0.392667 -0.082485 -0.123449 -0.349467\n",
       "\n",
       "[1000 rows x 4 columns]"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 检测和过滤异常值\n",
    "data = pd.DataFrame(np.random.randn(1000,4))\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "d73df8f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>-0.924398</td>\n",
       "      <td>0.210010</td>\n",
       "      <td>0.059748</td>\n",
       "      <td>3.251111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>-0.140073</td>\n",
       "      <td>0.381522</td>\n",
       "      <td>-1.234575</td>\n",
       "      <td>3.118826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>-0.251916</td>\n",
       "      <td>0.829650</td>\n",
       "      <td>1.172894</td>\n",
       "      <td>-3.016537</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>349</th>\n",
       "      <td>-3.207141</td>\n",
       "      <td>0.338468</td>\n",
       "      <td>1.398747</td>\n",
       "      <td>-0.040883</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>423</th>\n",
       "      <td>-3.201066</td>\n",
       "      <td>-0.161044</td>\n",
       "      <td>0.194512</td>\n",
       "      <td>-0.629423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>435</th>\n",
       "      <td>-0.616055</td>\n",
       "      <td>0.574590</td>\n",
       "      <td>-3.296191</td>\n",
       "      <td>1.319120</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>537</th>\n",
       "      <td>3.189167</td>\n",
       "      <td>-0.428805</td>\n",
       "      <td>0.060575</td>\n",
       "      <td>0.599356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>610</th>\n",
       "      <td>-0.303258</td>\n",
       "      <td>-0.385274</td>\n",
       "      <td>-3.548695</td>\n",
       "      <td>1.206900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>652</th>\n",
       "      <td>3.219198</td>\n",
       "      <td>-1.813970</td>\n",
       "      <td>1.544150</td>\n",
       "      <td>-0.441029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>678</th>\n",
       "      <td>1.203410</td>\n",
       "      <td>3.124440</td>\n",
       "      <td>0.462864</td>\n",
       "      <td>-1.181162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>682</th>\n",
       "      <td>-0.647879</td>\n",
       "      <td>-1.478814</td>\n",
       "      <td>3.103154</td>\n",
       "      <td>-0.135931</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>705</th>\n",
       "      <td>0.038320</td>\n",
       "      <td>0.831528</td>\n",
       "      <td>3.279069</td>\n",
       "      <td>-0.317681</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0         1         2         3\n",
       "46  -0.924398  0.210010  0.059748  3.251111\n",
       "96  -0.140073  0.381522 -1.234575  3.118826\n",
       "177 -0.251916  0.829650  1.172894 -3.016537\n",
       "349 -3.207141  0.338468  1.398747 -0.040883\n",
       "423 -3.201066 -0.161044  0.194512 -0.629423\n",
       "435 -0.616055  0.574590 -3.296191  1.319120\n",
       "537  3.189167 -0.428805  0.060575  0.599356\n",
       "610 -0.303258 -0.385274 -3.548695  1.206900\n",
       "652  3.219198 -1.813970  1.544150 -0.441029\n",
       "678  1.203410  3.124440  0.462864 -1.181162\n",
       "682 -0.647879 -1.478814  3.103154 -0.135931\n",
       "705  0.038320  0.831528  3.279069 -0.317681"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[(data.abs()>3).any(1)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "e2b4a8f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "data[(data.abs()>3)] = 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "af1b8a90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>1000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-0.000111</td>\n",
       "      <td>-0.061356</td>\n",
       "      <td>0.014104</td>\n",
       "      <td>0.022130</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.028623</td>\n",
       "      <td>0.964735</td>\n",
       "      <td>1.019343</td>\n",
       "      <td>1.019081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-2.706397</td>\n",
       "      <td>-2.869870</td>\n",
       "      <td>-2.969317</td>\n",
       "      <td>-2.986390</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-0.670948</td>\n",
       "      <td>-0.722731</td>\n",
       "      <td>-0.665058</td>\n",
       "      <td>-0.731552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-0.019606</td>\n",
       "      <td>-0.062147</td>\n",
       "      <td>0.001566</td>\n",
       "      <td>0.049704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.705506</td>\n",
       "      <td>0.603092</td>\n",
       "      <td>0.682629</td>\n",
       "      <td>0.689568</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 0            1            2            3\n",
       "count  1000.000000  1000.000000  1000.000000  1000.000000\n",
       "mean     -0.000111    -0.061356     0.014104     0.022130\n",
       "std       1.028623     0.964735     1.019343     1.019081\n",
       "min      -2.706397    -2.869870    -2.969317    -2.986390\n",
       "25%      -0.670948    -0.722731    -0.665058    -0.731552\n",
       "50%      -0.019606    -0.062147     0.001566     0.049704\n",
       "75%       0.705506     0.603092     0.682629     0.689568\n",
       "max       3.000000     3.000000     3.000000     3.000000"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb26c339",
   "metadata": {},
   "source": [
    "# 排列 和随机取样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "5e656476",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16</td>\n",
       "      <td>17</td>\n",
       "      <td>18</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "0   0   1   2   3\n",
       "1   4   5   6   7\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15\n",
       "4  16  17  18  19"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame(np.arange(20).reshape(5,4))\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "59375eb9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 2, 3])"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sam = np.random.permutation(4)\n",
    "sam"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "5be214b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "1   4   5   6   7\n",
       "0   0   1   2   3\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.take(sam,axis=0)  # 新 顺序 排列  并取出"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "id": "36ef79c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "1   4   5   6   7\n",
       "2   8   9  10  11\n",
       "3  12  13  14  15"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(3,axis=0)  # 随机采样效果 和上面 等价"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "id": "ea39114c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>10</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    0   1   2   3\n",
       "1   4   5   6   7\n",
       "0   0   1   2   3\n",
       "2   8   9  10  11\n",
       "2   8   9  10  11\n",
       "1   4   5   6   7\n",
       "3  12  13  14  15\n",
       "3  12  13  14  15\n",
       "3  12  13  14  15\n",
       "2   8   9  10  11\n",
       "2   8   9  10  11"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.sample(10,axis=0,replace=True)  # replace 允许重复 选择 "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f82129b",
   "metadata": {},
   "source": [
    "# 字符串替换"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acde2f8f",
   "metadata": {},
   "source": [
    "### 字符串对象方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "id": "f971f995",
   "metadata": {},
   "outputs": [],
   "source": [
    "val = \"a,b, c\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "91bf31bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['a', 'b', ' c']"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val.split(\",\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "832194ae",
   "metadata": {},
   "source": [
    "# 正则表达式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "c611ee6f",
   "metadata": {},
   "outputs": [],
   "source": [
    "import re"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "258a9e71",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['foo', 'bar', 'bat', 'qq']"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text = \"foo bar\\t bat    \\tqq\"\n",
    "re.split(\"\\s+\",text)  # re 的拆分模块"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e5e9e3e",
   "metadata": {},
   "source": [
    "# pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "c496868a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    1.0\n",
       "1    2.0\n",
       "2    NaN\n",
       "3    3.0\n",
       "4    NaN\n",
       "dtype: float64"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss = pd.Series([1,2,np.nan,3,np.nan])\n",
    "ss "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "0678d961",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ss.isna().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34b461f8",
   "metadata": {},
   "source": [
    "# ignore_index 忽略 index 操作\n",
    "# join ['inner','outer']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc1fc87b",
   "metadata": {},
   "outputs": [],
   "source": [
    "pd.c"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ece4d1e",
   "metadata": {},
   "source": [
    "# merge方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "cc0ce76a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  key   A   B\n",
      "0  K0  A0  B0\n",
      "1  K1  A1  B1\n",
      "2  K2  A2  B2\n",
      "3  K3  A3  B3\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>key</th>\n",
       "      <th>C</th>\n",
       "      <th>D</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>K2</td>\n",
       "      <td>C0</td>\n",
       "      <td>D0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>K1</td>\n",
       "      <td>C1</td>\n",
       "      <td>D1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>K0</td>\n",
       "      <td>C2</td>\n",
       "      <td>D2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>K3</td>\n",
       "      <td>C3</td>\n",
       "      <td>D3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  key   C   D\n",
       "0  K2  C0  D0\n",
       "1  K1  C1  D1\n",
       "2  K0  C2  D2\n",
       "3  K3  C3  D3"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = pd.DataFrame({\"key\":[\"K0\",\"K1\",\"K2\",\"K3\"],\n",
    "                 \"A\":[\"A0\",\"A1\",\"A2\",\"A3\"],\n",
    "                 \"B\":[\"B0\",\"B1\",\"B2\",\"B3\"]})\n",
    "b = pd.DataFrame({\"key\":[\"K2\",\"K1\",\"K0\",\"K3\"],\n",
    "                 \"C\":[\"C0\",\"C1\",\"C2\",\"C3\"],\n",
    "                 \"D\":[\"D0\",\"D1\",\"D2\",\"D3\"]})\n",
    "print(a)\n",
    "b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "id": "82a6b623",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>key</th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "      <th>C</th>\n",
       "      <th>D</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>K0</td>\n",
       "      <td>A0</td>\n",
       "      <td>B0</td>\n",
       "      <td>C2</td>\n",
       "      <td>D2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>K1</td>\n",
       "      <td>A1</td>\n",
       "      <td>B1</td>\n",
       "      <td>C1</td>\n",
       "      <td>D1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>K2</td>\n",
       "      <td>A2</td>\n",
       "      <td>B2</td>\n",
       "      <td>C0</td>\n",
       "      <td>D0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>K3</td>\n",
       "      <td>A3</td>\n",
       "      <td>B3</td>\n",
       "      <td>C3</td>\n",
       "      <td>D3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  key   A   B   C   D\n",
       "0  K0  A0  B0  C2  D2\n",
       "1  K1  A1  B1  C1  D1\n",
       "2  K2  A2  B2  C0  D0\n",
       "3  K3  A3  B3  C3  D3"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(a,b,on=\"key\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d0c9314",
   "metadata": {},
   "source": [
    "# plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "24515c59",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "      <th>d</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.332769</td>\n",
       "      <td>-0.175944</td>\n",
       "      <td>-1.320451</td>\n",
       "      <td>-0.319938</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.569642</td>\n",
       "      <td>-0.227133</td>\n",
       "      <td>-0.984336</td>\n",
       "      <td>-1.493862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.200896</td>\n",
       "      <td>-0.655251</td>\n",
       "      <td>-0.666126</td>\n",
       "      <td>-2.483953</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-2.531223</td>\n",
       "      <td>-0.818701</td>\n",
       "      <td>-0.842718</td>\n",
       "      <td>-1.502879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-3.518648</td>\n",
       "      <td>-0.588863</td>\n",
       "      <td>-0.217337</td>\n",
       "      <td>-2.269010</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          a         b         c         d\n",
       "0 -0.332769 -0.175944 -1.320451 -0.319938\n",
       "1 -0.569642 -0.227133 -0.984336 -1.493862\n",
       "2 -0.200896 -0.655251 -0.666126 -2.483953\n",
       "3 -2.531223 -0.818701 -0.842718 -1.502879\n",
       "4 -3.518648 -0.588863 -0.217337 -2.269010"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.DataFrame(np.random.randn(1000,4),columns=list(\"abcd\"))\n",
    "data = data.cumsum()\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "27e164e1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "78490421",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "f401ae9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='a', ylabel='b'>"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = data.plot.scatter(x=\"a\",y=\"b\",color=\"DarkBlue\",label = \"class 1\")\n",
    "ax"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "id": "5b5c7bd7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='a', ylabel='c'>"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax2 = data.plot.scatter(x=\"a\",y=\"c\",color=\"DarkGreen\",label = \"class 2\")\n",
    "ax2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "id": "22f26a3c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='a', ylabel='c'>"
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "aa = data.plot.scatter(x=\"a\",y=\"c\",color=\"DarkGreen\",label = \"class 2\",ax=ax)\n",
    "aa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "7ddacb24",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:ylabel='Density'>"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.plot.kde()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "e90c331a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.plot.box()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "8a422866",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 171,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.plot.bar()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "1305f1b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>one</th>\n",
       "      <th>two</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>张三</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>李四</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>张三</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  one  two\n",
       "0  张三  1.0\n",
       "1  李四  NaN\n",
       "2  张三  3.0"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "in"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b0075461",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dd[\"two\"].f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "id": "36eed649",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(dd[\"one\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a3e29d84",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
